package online.heycm.rbac.common.constant;

/**
 * 错误码
 *
 * @author hey
 * @version 1.0
 * @date 2024/1/11 11:49
 */
public enum ErrorCode implements online.heycm.platform.common.entity.result.ErrorCode {
    SUCCESS(200, "成功"),
    ERROR_AUTH(401, "未登录"),
    ERROR_PERMIT(403, "无权限"),
    ERROR_RESOURCE(404, "无资源"),
    ERROR_ROLE(600, "角色不存在"),

    // Basic模块错误码：1000-1999
    DICT_INSERT(1000, "新增字典失败"),
    DICT_UPDATE(1001, "更新字典失败"),
    DICT_NOT_EXIST(1002, "字典不存在"),
    PARAM_INSERT(1003, "新增配置失败"),
    PARAM_UPDATE(1004, "更新配置失败"),
    PARAM_NOT_EXIST(1005, "配置不存在"),
    GENERATOR_ID(1006, "获取序列ID失败"),
    ROLE_REPEAT(1007, "角色标识冲突"),
    ROLE_INSERT(1008, "新增角色失败"),
    ROLE_UPDATE(1009, "更新角色失败"),
    BASE_ROLE_UPDATE(1009, "基础角色禁止修改"),
    INTERFACE_INSERT(1010, "新增接口失败"),
    INTERFACE_UPDATE(1011, "更新接口失败"),
    ROLE_INTERFACE_INSERT(1012, "更新角色权限失败"),
    RESOURCE_INSERT(1013, "新增资源失败"),
    RESOURCE_UPDATE(1014, "更新资源失败"),
    ROLE_RESOURCE_INSERT(1015, "更新角色资源失败"),

    // User模块错误码：2000-2999
    LOGIN_AUTH_TYPE(2000, "无效的认证方式"),
    CONSOLE_LOGIN(2001, "账户或密码错误"),
    SESSION_STORAGE(2002, "会话保存失败"),
    USER_NOT_EXIST(2003, "用户不存在"),
    USER_AUTHORIZE_UPDATE(2004, "更新用户认证信息失败"),
    USER_ID_CARD(2005, "无效的身份证号码"),
    USER_PASSWORD(2006, "密码要求长度至少8位，包含大小写字母、数字、特殊字符"),
    USER_PHONE(2007, "手机号码格式错误"),
    USER_ROLE_INSERT(2008, "新增用户角色失败"),
    USER_PHONE_EXIST(2009, "手机号码已存在"),
    SESSION_EXPIRE(2010, "会话已过期"),
    ;

    private final int code;
    private final String message;

    ErrorCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public int code() {
        return code;
    }

    @Override
    public String message() {
        return message;
    }
}
